home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-02-26 | 8.3 KB | 298 lines |
- 10 'TUNECCT - Tuned Circuit (L/C network) - 27 MAR 86 rev. 30 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 PROG$="tunecct"
- 40 COMMON EX$,PROG$,UH,U
- 50 CLS:KEY OFF
- 60 COLOR 7,0,1
- 70 U$="####.###"
- 80 U1$="####,###.###"
- 90 U2$="####,###"
- 100 UL$=STRING$(80,205)
- 110 L$=STRING$(40,205)
- 120 X$=STRING$(40,32)
- 130 PI=3.14159
- 140 DIM AWG(40,2) 'AWG sizes
- 150 '.....AWG calculator
- 160 K#=(0.46/0.005)^(1/39) 'incremental multiplier
- 170 FOR Z=1 TO 40
- 180 NZ=Z+3
- 190 WIRE=0.46/K#^NZ 'wire diameter in inches
- 200 CIRC=(WIRE*10^3)^2 'circular mils
- 210 OHM=10574/CIRC 'ohms per 1000 ft.
- 220 OHM=OHM/(12*10^3) 'ohms per inch
- 230 AWG(Z,1)=WIRE
- 240 AWG(Z,2)=OHM
- 250 NEXT Z
- 260 GOTO 340
- 270 '
- 280 '.....erase lines
- 290 FOR Z=E1 TO E2:LOCATE Z,E3:PRINT STRING$(40,32);
- 300 IF E2<24 THEN PRINT ""
- 310 NEXT Z
- 320 RETURN
- 330 '
- 340 '.....start
- 350 CLS
- 360 F=0:W=0:C=0:X=0:PF=0:FQC=0
- 370 D=0:R=0:L=0:N=0:T=0:Q=0:U=0:UH=0
- 380 COLOR 15,2
- 390 PRINT " L/C TUNED CIRCUITS (Inductor/Capacitor)";
- 400 PRINT TAB(57);"by George Murphy VE3ERP ";
- 410 COLOR 1,0:PRINT STRING$(80,223);
- 420 COLOR 7,0
- 430 GOSUB 2680
- 440 PRINT " Press number in < > to choose standard units of measure:"
- 450 PRINT UL$;
- 460 PRINT " < 1 > Metric"
- 470 PRINT " < 2 > U.S.A./Imperial"
- 480 PRINT UL$;
- 490 PRINT " or Press < 0 > to EXIT....."
- 500 Z$=INKEY$
- 510 IF Z$="0"THEN CLS:CHAIN EX$
- 520 IF Z$="1"THEN UM=25.4:UM$="mm.":GOTO 550
- 530 IF Z$="2"THEN UM=1:UM$="in.":GOTO 550
- 540 GOTO 500
- 550 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 560 PRINT " Press letter in < > to:"
- 570 PRINT UL$;
- 580 PRINT " < 1 > Design a tuned L/C network"
- 590 PRINT " < 2 > Design a single-layer air-core coil"
- 600 PRINT " < 3 > Find impedance of an L/C network"
- 610 PRINT " < 4 > Find insertion loss of a tuned circuit"
- 620 PRINT UL$;
- 630 Z$=INKEY$
- 640 IF Z$="1"OR Z$="2" THEN VIEW PRINT 3 TO 24:CLS:VIEW PRINT
- 650 IF Z$="1"THEN 1300
- 660 IF Z$="2"THEN 710
- 670 IF Z$="3"THEN CLS:CHAIN"dsgnmenu"
- 680 IF Z$="4"THEN CLS:CHAIN"inserlos"
- 690 GOTO 630
- 700 '
- 710 '.....INDUCT - 26 MAR 86 rev.15 MAR 95
- 720 LOCATE 3
- 730 PRINT TAB(7);"SINGLE-LAYER AIR-CORE COIL"
- 740 PRINT UL$;
- 750 LOCATE CSRLIN-3,40:PRINT "OPEN"
- 760 LOCATE CSRLIN,40:PRINT "OPEN"
- 770 LOCATE CSRLIN,40:PRINT "LOCATE"
- 780 '.....inputs
- 790 GOSUB 910:IF R THEN 810
- 800 PRINT " ENTER: Coil diameter (";UM$;")";:INPUT D:D=D/UM:R=D/2
- 810 GOSUB 910:IF L THEN 830
- 820 PRINT " ENTER: Coil length (";UM$;")..";:INPUT L:L=L/UM
- 830 GOSUB 910:IF U+N THEN 850
- 840 INPUT " ENTER: Inductance (>H) .......";U
- 850 GOSUB 910:IF N+U THEN 870
- 860 INPUT " ENTER: Number of turns .......";N
- 870 GOSUB 910:IF T THEN 890
- 880 INPUT " ENTER: Turns per 25.4mm (inch)";T
- 890 GOSUB 910:GOTO 790
- 900 '
- 910 LOCATE 5:PRINT X$
- 920 IF U=0 THEN IF R*L*N THEN U=R^2*N^2/(9*R+10*L)
- 930 IF N=0 THEN IF R*L*U THEN N=(SQR(U*(9*R+10*L)))/R
- 940 IF N=0 THEN IF L*T THEN N=L*T
- 950 IF L=0 THEN IF N*T THEN L=N/T
- 960 IF T=0 THEN IF N*L THEN T=N/L
- 970 IF L=0 THEN IF R*T*U THEN Q=R^2*T^2/U:L=ABS(-10-SQR(100+36*R*Q))/2/Q
- 980 IF R*L*N*U THEN 1000 ELSE LOCATE 5:RETURN
- 990 '
- 1000 LOCATE 5:PRINT X$:LOCATE 5
- 1010 PRINT " Coil diameter (";UM$;")......";USING U1$;D*UM
- 1020 PRINT " Coil length (";UM$;")........";USING U1$;L*UM
- 1030 PRINT " Number of turns .........";USING U1$;N
- 1040 PRINT " Turns per 25.4mm (inch)..";USING U1$;T
- 1050 SP=1/T
- 1060 PRINT " Turn spacing (";UM$;").......";USING U1$;SP*UM
- 1070 PRINT " Inductance (>H) .........";USING U1$;U
- 1080 PRINT L$
- 1090 UCOIL=U 'remember inductance
- 1100 GOSUB 2080 'Q option
- 1110 GOSUB 2850 'screen dump option
- 1120 '
- 1130 LOCATE 25,1:PRINT STRING$(80,32);
- 1140 E1=11:E2=17:E3=1:GOSUB 280
- 1150 LOCATE 17
- 1160 PRINT " Press number in ( ) for next step:
- 1170 PRINT L$
- 1180 PRINT " (1) Design another coil with same uH"
- 1190 PRINT " (2) Design an optimum coil with same uH"
- 1200 PRINT " (3) Use above coil in an L/C circuit"
- 1210 PRINT " (4) EXIT"
- 1220 Z$=INKEY$:IF Z$=""THEN 1220
- 1230 IF Z$="2"THEN UH=U:CLS:CHAIN"coildsgn"
- 1240 IF Z$="4"THEN CLS:GOTO 340
- 1250 E1=17:E2=23:E3=1:GOSUB 280
- 1260 IF Z$="3"THEN GOSUB 2820:F=0:W=0:X=0:C=0:GOTO 1310
- 1270 E1=5:E2=18:E3=1:GOSUB 280
- 1280 R=0:L=0:N=0:T=0:GOTO 710
- 1290 '
- 1300 '.....L/C circuit
- 1310 LOCATE 3,54:PRINT "L/C NETWORK"
- 1320 PRINT UL$;
- 1330 LOCATE CSRLIN-3,40:PRINT "OPEN"
- 1340 LOCATE CSRLIN,40:PRINT "OPEN"
- 1350 LOCATE CSRLIN,40:PRINT "LOCATE"
- 1360 '.....inputs
- 1370 GOSUB 1490:IF F+W THEN 1410
- 1380 INPUT "ENTER: Frequency (MHz) .........";F:IF F THEN W=300/F
- 1390 GOSUB 1490:IF W+F THEN 1410
- 1400 INPUT "ENTER: Wavelength (metres) .....";W:IF W THEN F=300/W
- 1410 GOSUB 1490:IF C THEN 1430
- 1420 INPUT "ENTER: Capacitance (pF).........";C
- 1430 GOSUB 1490:IF X THEN 1450
- 1440 INPUT "ENTER: Reactance (ohms) ........";X
- 1450 GOSUB 1490:IF U THEN 1470
- 1460 INPUT "ENTER: Inductance (>H)..........";U
- 1470 GOSUB 1490:GOTO 1370
- 1480 '
- 1490 JJ=1/(4*PI^2)*10^6 'JJ=25330.29
- 1500 IF U=0 AND C*F<>0 THEN U=JJ/F^2/C:GOTO 1490
- 1510 IF U=0 AND X*F<>0 THEN U=X/(2*PI*F):GOTO 1490
- 1520 IF C=0 AND F*U<>0 THEN C=JJ/F^2/U:GOTO 1490
- 1530 IF F=0 AND C*U<>0 THEN F=SQR(JJ/C/U):W=300/F:GOTO 1490
- 1540 IF F=0 AND X*U<>0 THEN F=X/(2*PI*U):W=300/F:GOTO 1490
- 1550 IF F=0 AND X*C<>0 THEN F=10^6/(2*PI*X*C):W=300/F:GOTO 1490
- 1560 IF X=0 AND F*C<>0 THEN X=10^6/(2*PI*F*C):GOTO 1490
- 1570 IF F*X*U*C THEN 1600 ELSE 1580
- 1580 E1=5:E2=5:E3=41:GOSUB 280:LOCATE 5,41:RETURN
- 1590 '
- 1600 LOCATE 5,41:PRINT X$
- 1610 LOCATE 5,42:PRINT "Frequency................";USING U$;F;:PRINT " MHz"
- 1620 LOCATE 6,42:PRINT "Wavelength...............";USING U$;W;:PRINT " m."
- 1630 LOCATE 7,42:PRINT "Reactance................";USING U$;X;:PRINT " -"
- 1640 LOCATE 8,42:PRINT "Inductance...............";USING U$;U;:PRINT " >H"
- 1650 LOCATE 9,42:PRINT "Capacitance..............";USING U$;C;:PRINT " pF"
- 1660 COLOR 0,7
- 1670 LOCATE 10,41:PRINT " React.& Freq. with variable capacitor:"
- 1680 COLOR 7,0
- 1690 FOR VAR=1 TO 4
- 1700 PF=C*0.2*VAR:FQC=SQR(25330/PF/U):XX=10^6/(2*PI*FQC*PF)
- 1710 LOCATE 15-VAR,41:PRINT USING U$;XX;:PRINT " -"
- 1720 LOCATE 15-VAR,53:PRINT USING U$;FQC;:PRINT " MHz @";
- 1730 PRINT USING U$;PF;:PRINT " pF"
- 1740 NEXT VAR
- 1750 UFREQ=U
- 1760 IF UFREQ<>UCOIL THEN E1=5:E2=14:E3=1:GOSUB 280 'erase coil data
- 1770 LOCATE 15,41:PRINT L$;
- 1780 IF X*T THEN GOSUB 2080
- 1790 GOSUB 2850
- 1800 '
- 1810 LOCATE 25,1:PRINT STRING$(80,32);
- 1820 E1=11:E2=18:E3=1:GOSUB 280
- 1830 COLOR 0,7
- 1840 LOCATE 16
- 1850 LOCATE ,41:PRINT " Press number in ( ) for next step:"
- 1860 COLOR 7,0
- 1870 LOCATE ,41:PRINT " (1) Re-do with same Frequency"
- 1880 LOCATE ,41:PRINT " (2) Re-do with same Reactance"
- 1890 LOCATE ,41:PRINT " (3) Re-do with same Capacitance"
- 1900 LOCATE ,41:PRINT " (4) Re-do with same Inductance"
- 1910 LOCATE ,41:PRINT " (5) Design a";INT(C);"pF Tuning Capacitor"
- 1920 UH=INT(U*1000+0.5)/1000
- 1930 LOCATE ,41:PRINT " (6) Design a";UH;">H coil"
- 1940 LOCATE ,41:PRINT " (7) Find a stock";UH;">H coil"
- 1950 LOCATE ,41:PRINT " (8) EXIT";
- 1960 Z$=INKEY$:IF VAL(Z$)>=1 AND VAL(Z$)<=8 THEN 1970 ELSE 1960
- 1970 E1=16:E2=24:E3=41:GOSUB 280
- 1980 IF Z$="1"THEN X=0:C=0:U=0:GOSUB 2820:GOTO 1360
- 1990 IF Z$="2"THEN F=0:W=0::C=0:U=0:GOSUB 2820:GOTO 1360
- 2000 IF Z$="3"THEN F=0:W=0:X=0:U=0:GOSUB 2820:GOTO 1360
- 2010 IF Z$="4"THEN F=O:W=0:X=0:C=0:GOSUB 2820:GOTO 1360
- 2020 IF Z$="5"THEN CLS:CHAIN"capytel"
- 2030 IF Z$="6"THEN 1270
- 2040 IF Z$="7"THEN U=UH:CLS:CHAIN"aircore"
- 2050 IF Z$="8"THEN CLS:GOTO 340
- 2060 END
- 2070 '
- 2080 '.....Q option
- 2090 IF UFREQ<>UCOIL THEN RETURN 'uH not same
- 2100 LOCATE 17,2
- 2110 COLOR 0,7
- 2120 PRINT " Do you want to estimate the Q of this circuit ? (y/n) "
- 2130 COLOR 7,0
- 2140 Z$=INKEY$
- 2150 IF Z$="y"OR Z$="Y"THEN 2190
- 2160 IF Z$="n"OR Z$="N"THEN LOCATE CSRLIN-1:PRINT STRING$(80,32);:RETURN
- 2170 GOTO 2140
- 2180 '
- 2190 '.....calculate Q
- 2200 LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
- 2210 IF UM=1 THEN 2270
- 2220 '
- 2230 INPUT " ENTER: Diameter of wire in coil (mm.).....";DIA:DIA=DIA/UM
- 2240 OPI=(10371/(DIA*10^3)^2)/12000 'ohms per inch
- 2250 GOTO 2330
- 2260 '
- 2270 INPUT " ENTER: Size of wire in coil........A.W.G.#";AWG
- 2280 FOR GA=1 TO 40
- 2290 IF GA=AWG THEN DIA=AWG(GA,1):OPI=AWG(GA,2):GOTO 2330
- 2300 NEXT GA
- 2310 GOTO 2270
- 2320 '
- 2330 IF DIA<=SP THEN 2400
- 2340 BEEP:COLOR 0,7
- 2350 PRINT " WIRE DIAMETER MUST BE LESS THAN TURN SPACING!...Press any key...."
- 2360 IF INKEY$=""THEN COLOR 7,0:GOTO 2360
- 2370 VIEW PRINT 18 TO 23:CLS:VIEW PRINT:LOCATE 18:GOTO 2210
- 2380 GOTO 2080
- 2390 '
- 2400 VIEW PRINT 17 TO 23:CLS:VIEW PRINT:LOCATE 17
- 2410 LGTH=PI*D*N 'length of wire in coil in inches
- 2420 RES=LGTH*OPI 'resistance of coil
- 2430 Q=X/RES 'Q of series resonant circuit
- 2440 LOCATE CSRLIN-1:PRINT STRING$(80,32);
- 2450 LOCATE 11:PRINT STRING$(40,32):LOCATE CSRLIN-1
- 2460 IF AWG=0 THEN PRINT :GOTO 2480
- 2470 PRINT " Wire size...............#";USING U2$;AWG;:PRINT " AWG"
- 2480 PRINT " Wire diameter (";UM$;")......";USING U1$;DIA*UM
- 2490 PRINT " Wire length (";UM$;")........";USING U1$;LGTH*UM
- 2500 PRINT " Wire resistance (ohms)...";USING U1$;RES
- 2510 PRINT " Q of unloaded circuit....";USING U1$;Q
- 2520 QU=Q
- 2530 'PRINT L$
- 2540 LOCATE 17,2:COLOR 0,7
- 2550 INPUT " ENTER: Parallel load resistance (ohms)";RES
- 2560 COLOR 7,0
- 2570 LOCATE CSRLIN-1:PRINT STRING$(80,32);
- 2580 Q=RES/X:
- 2590 LOCATE CSRLIN-2:PRINT STRING$(40,32):LOCATE CSRLIN-1
- 2600 PRINT " Load resistance (ohms)...";USING U1$;RES
- 2610 PRINT " Q of loaded circuit......";USING U1$;Q
- 2620 QD=Q
- 2630 IL=20*LOG(1/(1-QD/QU))*0.43429
- 2640 PRINT " Insertion loss (dB.......";USING U1$;IL
- 2650 'PRINT L$
- 2660 RETURN
- 2670 '
- 2680 '.....diagram
- 2690 COLOR 0,7
- 2700 J=22
- 2710 LOCATE 3,J:PRINT " "
- 2720 LOCATE 4,J:PRINT " L "
- 2730 LOCATE 5,J:PRINT " L C VARPTRSOUNDSOUNDORORORORSOUNDSOUNDCOLOR "
- 2740 LOCATE 6,J:PRINT " SOUNDSOUNDSOUNDORORORORSOUNDSOUNDSOUND<0xB4!>BLOADSOUNDSOUNDSOUND SOUNDSOUNDSOUND<0xB4!> BLOADSOUNDSOUNDSOUND "
- 2750 LOCATE 7,J:PRINT " CLSSOUNDSOUNDSOUND<0xB4!>BLOADSOUNDSOUNDSOUND' "
- 2760 LOCATE 8,J:PRINT " C "
- 2770 LOCATE 9,J:PRINT " SERIES or PARALLEL "
- 2780 COLOR 7,0
- 2790 PRINT UL$;
- 2800 RETURN
- 2810 '
- 2820 E1=5:E2=16:E3=41:GOSUB 280
- 2830 RETURN
- 2840 '
- 2850 'HARDCOPY
- 2860 GOSUB 2970:LOCATE 25,2:COLOR 14,6
- 2870 PRINT " Press 1 to print screen, 2 to print screen & ";
- 2880 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 2890 Z$=INKEY$:IF Z$="3"THEN GOSUB 2970:RETURN
- 2900 IF Z$="1"OR Z$="2"THEN GOSUB 2970:GOTO 2920
- 2910 GOTO 2890
- 2920 FOR QX=1 TO 24:FOR QY=1 TO 80
- 2930 LPRINT CHR$(SCREEN(QX,QY));
- 2940 NEXT QY:NEXT QX
- 2950 IF Z$="2"THEN LPRINT CHR$(12)
- 2960 GOTO 2860
- 2970 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-